


/**
 * 
 * 1.接口类型声明 interface 大驼峰 {变量名:类型...}
 * 2.接口可选属性 interface 大驼峰 {变量名?:类型...}
 * 3.接口方法声明 interface 大驼峰 {方法名?:(方法参数)=>返回值 void}
 * 4.接口继承声明 interface 大驼峰 extends 接口类型 {方法名?:(方法参数)=>返回值 void}
 */


//接口类型
//接口的首字母大写,大驼峰 参考java类和接口的命名
//object可以限制类型为对象! 但是无法显示内部的属性和方法的命名和类型问题
//接口就是类定义具体类型的对象(属性名,方法名,属性类型,方法类型,可选属性或者方法等等,还能继承)
let person:object = {name:"xx",age:18}

//person name String age number

//1. 接口类型
interface p{
    name:string,
    age:number
}
let person1:p = {
    name:"哈哈",
    age:18
}
//2.接口中的可选属性
//属性名?
interface p1{
    name:string,
    age?:any
}
let person2:p1 = {
    name:"哈哈哈",
    age:"hehe"
}
//3.接口中的方法限制
interface p2{
    name:string,
    age?:any,
    //名称:(参数数限制)=>返回值类型限制
    eat:()=>void //有一个eat方法没有参数,且没有返回值
}

//4.接口继承
//尚庭公寓 -> 表 -> id isDeleted createTime updateTime -> 其他的属性
interface baseProperty{
    id:number,
    createTime:string
}

interface room extends baseProperty {
   roomName:string
}

interface apartment extends baseProperty {
    apartmentName:string
 }


 let roomItem:room = {
    roomName:"101",
    id:1,
    createTime:'2024-11-18'
 }